package com.css.fxfzdzzh.modules.basicData.landslideSite.service;

import com.alibaba.fastjson.JSONObject;
import com.css.fxfzdzzh.base.response.RestResponse;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.FieldDesc;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.LandslideSiteMetaData;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.LandslideSiteVersion;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.LandslideSiteFileData;
import com.css.fxfzdzzh.modules.basicData.landslideSite.entity.param.DataVersionPageParam;
import com.css.fxfzdzzh.modules.basicData.landslideSite.vo.DataPageVO;
import com.css.fxfzdzzh.modules.basicData.landslideSite.vo.MetaDataUpdateVO;
import com.css.fxfzdzzh.modules.basicData.landslideSite.vo.VersionMetaDataInfoVO;
import com.css.fxfzdzzh.modules.basicData.param.SysDataVersionSameTypeDataExistParam;
import com.css.fxfzdzzh.modules.eqLandslide.lawAnalysis.vo.SlopesVO;
import com.css.fxfzdzzh.modules.evaluate.VO.VersionPageVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * @author Dbj
 * @date 2023年02月22日  13:57
 */
public interface LandslideSiteService {
    Map<String,Object> page(DataVersionPageParam dataVersionPageParam);

    String getVersionCode(String dataLevel);

    String saveNewVersion(LandslideSiteVersion landslideSite);

//    void saveMetaDataInfo(LandslideSiteFileData metaData);

    String overWriteOldVersion(LandslideSiteVersion sysDataVersion);

    VersionMetaDataInfoVO getVersionMetaDataInfo(String versionCode);

    void saveMetaDataInfo(LandslideSiteMetaData metaData);

    void updateMetaDataInfo(LandslideSiteMetaData metaData) throws Exception;

    void delete(List<String> codeList) throws Exception;

    void parseShp(String fileIds,String versionCode) throws Exception;

    Map<String,Object> dataPage(DataPageVO dataPageVO);

    void exportExcel(HttpServletResponse response, DataPageVO dataPageVO) throws Exception;

    List<FieldDesc> getFieldDesc();

    Map<String,Object> pageForAnalyse(VersionPageVO param);

    List<SlopesVO> getSlopeAreaByGeomAndVersion1(String geomText, String param2);

    List<Map<String,Object>> getByGeomAndVersion2(String tableName, String param2);

    Map<String, Object> sameTypeDataExist(SysDataVersionSameTypeDataExistParam sysDataVersionSameTypeDataExistParam);

    List<String> getVersionCodeListByType();

    void delDataFile(String versionCode,String fileId);

    void deleteFileDataWithOutVesrion();

    JSONObject listForDp() throws ExecutionException, InterruptedException;
}
